🦖[REGEX]


Las expresiones regulares (Regex), son patrones de coincidencia utilizados para encontrar una determinada combinación de caracteres dentro de una cadena de texto. Estos patrones pueden usarse para comparar, extraer, remplazar o dividir segmentos de un texto particular, en otra cadena, texto largo o documento.

Al respecto, John D. Cook consultor en matemáticas aplicadas, estadística y privacidad de data, menciona en su cuenta de twitter, destinada a expresiones regulares (RegexTip), cuatro tips importantes que le ayudaron a comprender de ellas mientras aprendía:

  • Las expresiones regulares no son insignificantes, no son triviales, pero tampoco son tan difíciles. Solo toman un poco de estudio.
  • Las expresiones regulares no son comodines de líneas de comando, contienen algunos de los mismos símbolos, pero no significan lo mismo. Hay que aislar este pensamiento porque suele causar confusión.
  • Las expresiones regulares son un pequeño lenguaje de programación, generalmente están contenidas dentro de otro lenguaje de programación, hay que pensar en ellas, como pequeños fragmentos de un idioma extranjero, como una cita en francés dentro de la prosa inglesa. Por ende, no hay que esperar que las reglas del idioma externo tengan ninguna relación con las reglas internas.
  • Los Character clases ([]), son un pequeño sub-lenguaje dentro de las expresiones regulares. Una vez que te das cuenta de eso y no esperas que se apliquen las reglas para las expresiones fuera de ellos, pueden hacerse mas sencillos de entender.
Problemas triviales!?

Comparativa Enlaces de Interés

En la tabla a continuación, comparo dos páginas web dedicadas a enseñar de expresiones regulares, donde la columna de la izquierda representa mi fuente ganadora y la de la derecha.

Table: Comparativa páginas de Regex
- Fuente Ganadora🏆 Fuente a Mejorar
🔗Link Regex One Regular Expressions.Info
Pros Permite aprender expresiones regulares de manera interactiva y simple, además de que trae tutoriales para lenguajes en específico. En esta pagina, definitivamente, se defiende que la practica hace al maestro… Tiene una basta gama de tutoriales Regex, creo está bastante completa la información… (no me atreví a seguir curioseando)
‼️ Cons No la conseguí antes. Por temas de usabilidad, es imprescindible que el diseño esté siempre orientado y pensado por y para el usuario, en este sentido esta página tiene mucho aún por desarrollar.
☑️ Score 10/10 5.4/10

Algunos Ejemplos de tweets contenidos en la cuenta de (RegexTip):



📓RMarkDown


R Markdown es un formato que permite la fácil creación de documentos, presentaciones dinámicas e informes en R, utilizando de fondo un lenguaje llamado Markdown para enriquecer el informe final.

Este permite incluir:

  • Texto.
  • Comandos de R.
  • Imágenes.
  • Gráficos Interactivos.

Pero lo más importante es que permite que se reproduzca el análisis realizado y si se incorporan nuevos datos, los resultados se actualizarán.

Entre sus numerosas utilidades, se pueden mencionar las siguientes:

  • Documentos:
    • HTML.
    • PDF.
    • Word.
    • Handouts.
  • Documentos Interactivos:
    • Shiny.
    • Widges.
  • Dashboards
  • Presentations
  • Books
  • Websites
  • … y continúa la lista

Comparativa Enlaces de Interés

De igual forma que con el segmento anterior, en la tabla a continuación, comparo dos páginas web dedicadas a enseñar de RMarkdown, la columna de la izquierda continúa representando la ganadora.

Table: Comparativa páginas de R Markdown
- Fuente Ganadora🏆 Fuente a Mejorar
🔗 Link R Markdown from R Studio markdown.es
Pros Es la página más completa en contenido. Desde tutoriales básicos y explicitos, hasta formatos mas avanzados, esta fuente concatena la información necesaria para ser un experto en R Markdown. Información explicada en español, con enlaces externos útiles.
‼️ Cons Puede llegar a parecer abrumadora la cantidad de contenido si no se ha investigado con paciencia como utilizarla. El formato de la página no lo hace sencillo de entender, la publicidad distrae al usuario y no es intuitiva, este producto web no está bien construido.
☑️ Score 9.5/10 4/10

⚽️Análisis Exploratorio FIFA 2019


En la presente sección, se realiza un breve análisis exploratorio de los datos contenidos en FIFA 19 complete player Dataseet, el cual expone los atributos detallados para cada jugador registrado en la ultima edición o base de datos FIFA19.

He utilizado el DS disponible en GitHub, donde cada jugador se describe con mas de 80 atributos diferentes. Esta información se obtiene originalmente del website SoFiFa.


Requerimientos

Se solicita por favor, prestar especial atención al segmento Pre-requisitos, contenidos en el READ ME del proyecto, donde se exponen las librerías CRAN necesarias para la ejecución de este archivo e instrucciones pertinentes para la ejecución de la API.

Visualización de la Tabla Estudio

La columna de Posición, tiene por default muchos valores diferentes (Position Levels: 28) correspondientes a todas las posibles posiciones de un jugador en la cancha, para este estudio agrupo dichos valores en 4 grandes familias:

  • FWD (Delanteros)
  • DEF (Defensas)
  • MID (Mediocampos)
  • GK (Guardametas)

La dimensión de la tabla original, es la siguiente:

## [1] "El Dataset FIFA19 contiene 18207 filas y 89 columnas"

FIFA 2019 DataSet Filtered



Análisis Exploratorio de la Data

En el tratado de estos datos, podemos apreciar lo siguiente:

Distribución de Variables Físicas

Las líneas punteadas en cada histograma, representan el promedio para cada muestra.

Se puede apreciar en los histogramas, que la distribución de edades esta sesgada a la derecha, mientras que el resto de distribuciones son simétricas. La mayor parte de los jugadores utilizan preferiblemente el pie derecho. El tipo de cuerpo con mayor porcentaje es el “normal”, seguido por “delgado” y los jugadores “fornidos” son los menos dominantes.

  • Edad promedio: 25.12 Años.
  • Altura Promedio: 181.26 cms.
  • Peso Promedio: 75.26 Kg.
  • Pie Favorito: Derecho (76.61%)
  • Contextura de Cuerpos: Normal (58.19%)

En este orden de ideas, comparando la composición física de jugadores segmentados por Club, (FC Barcelona, Paris Saint-Germain, Real Madrid), se aprecia que:

  • FCB, tiene mayor variación en la contextura de sus jugadores.
  • FCB, tiene al jugador mas delgado~bajo y al mas pesado~alto. Salvo estos jugadores, la mayoría se encuentra en rangos similares.
  • PSG, presenta el grupo de jugadores mas agrupados en la media, muestra mayor variación en alturas que en pesos.
  • RM, concentra la mayor cantidad de puntos en jugadores pesados.

Distribución de Posiciones Generales

Este es el resultado del plot de densidad por posición de jugador. Los “forward”, “midfielder” y “defenders”, tienen formas simétricas, con valores de mediana casi iguales, lo que implica que (teóricamente) en “FIFA 19” estos están bien balanceados. Sin embargo, para los “Goalkeepers”, la distribución es diferente y la mediana menor a la de los demás.

Relación entre Wage vs Value

La distribución de Wage y Value está sesgada, se puede ver que la mayoría de los puntos se concentran cerca del cero. Sin embargo, a medida que aumenta el Salario, aumenta el Valor.


Nacionalidad de los Jugadores (TREEMAP)

En el diagrama de árbol, se aprecia dominancia de jugadores europeos en los cuadrantes mas grandes.


Jugador Favorito

En este segmento, se muestra a mi jugador preferido, el maravilloso:

##            Name Age                                          Photo Nationality
## 18 A. Griezmann  27 https://cdn.sofifa.org/players/4/19/194765.png      France
##                                   Flag Overall
## 18 https://cdn.sofifa.org/flags/18.png      89

Antoine Griezmann, nace en Mâcon - Borgoña, es un futbolista francés que juega como delantero en el Fútbol Club Barcelona de la Primera División de España. Además, es internacional con la selección de fútbol de Francia y ganó la copa del mundo en Rusia 2018 con esta selección.

🇫🇷 Visualización con Leaflet

En este apartadoo, con la ayuda de la API de Google Cloud Platform, he graficado las ubicaciones de Mâcon y del Camp Nou, actual club del jugador en cuestión.

Give a man a program, frustrate him for a day.Teach a man to program, frustrate him for a lifetime.” ― Muhammad Waseem